package com.cskaoyan.javase.oop2._1extends._9final._3variable._0introduction;

/**
 * @description: final修饰变量
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * final修饰变量,表示最后的变量,最终的变量,表示常量(值不会再变了)
 * final修饰变量总体上表示常量,需要注意三个细节:
 * final修饰变量可以修饰局部变量,成员变量,静态成员变量
 *      1.final修饰变量不会更改变量的存储位置,生命周期,使用方式等等.唯一的区别是成为了一个常量,值不再发生变化了
 *      2.final修饰变量时,可以修饰基本数据类型,和引用数据类型
 *          final修饰基本数据类型表示变量的值不可更改,成为变量
 *          final修饰引用数据类型,修饰的是引用而不是对象,表示引用中存储的地址成为一个常量,不可更改 -->
 *              引用指向的对象不可变,引用不能指向一个新的对象了
 *              但是对象中成员变量的取值(对象的状态)是可以更改的
 *      3.final修饰变量表示常量,这种常量我们在之前提到过
 *          常量的分类:
 *          a.字面值常量,比如1,2,3,"hello"
 *          b.自定义常量,自定义常量指的就是final修饰的变量
 *          自定义常量的命名: 建议单词全部大写,两个单词之间用"_"间隔
 *          实际上常量全部大写的命名规范要求不是很严格,尽量遵守
 *
 */
public class Demo {
    public static void main(String[] args) {
        //Math.PI
    }
}
